Подключение метода /api/v1/auth/refresh на API-Шлюзе

Маршрутизация HTTP-запроса ротации, вызов gRPC-клиента Auth и трансляция новой пары токенов.

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: backend-api (API Gateway / Шлюз).
  • Категория: Подключение метода к шлюзу.
  • Контракт взаимодействия: Внешний POST /api/v1/auth/refresh -> Внутренний gRPC AuthService.VerifyAndRotate.
  • Статус: Готово к реализации

  • Инструкция по шагам:
    1. На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать внешний HTTP-маршрут POST /api/v1/auth/refresh. Настроить DTO валидацию входящего тела TokenRefreshRequestDTO для проверки обязательного строкового поля refresh_token. При пустом значении отдавать HTTP 400 Bad Request.
    2. На Шаге 3 (Вызов gRPC): Пересобрать запрос в Protobuf-структуру RefreshRequest. Вызвать внутренний gRPC-метод VerifyAndRotate в auth-service, пробрасывая сквозной X-Request-ID для трассировки.
    3. Обработка бизнес-статусов: Перехватывать gRPC-ошибки бэкенда. Если auth-service возвращает UNAUTHENTICATED (токен отозван, просрочен или заблокирован в Redis), транслировать клиенту статус HTTP 401 Unauthorized. При ошибке Fail-Close от блэклиста отдавать HTTP 503 Service Unavailable.
    4. Финальный ответ (Шаг 9): При получении успешного ответа RotateResponse с новой парой токенов, сформировать JSON-ответ со статусом 200 OK, содержащий status: "success", новые параметры token, refresh_token и expires_in: 3600.